package com.deyuanyun.pic.ae.controller.dto;

import com.deyuanyun.pic.ae.domain.PressObject;
import com.deyuanyun.pic.common.util.DateUtil;
import com.deyuanyun.pic.common.util.NumberUtil;
import com.deyuanyun.pic.common.util.StringUtils;

import java.math.BigDecimal;
import java.util.Date;

/**
 * E_9管道占压物信息 创建或者修改 数据传输对象
 */
public class PressObjectEdit extends AEBaseEdit<PressObject> {

    // 管道编号
    private String pipeLineId;
    // 名称
    private String name;
    // 类型AE_PRESS_OBJECT_TYPE（树木、围墙、民房、厂房、大棚、牲口圈、其他）
    private String type;
    // 联系人
    private String contact;
    // 联系方式
    private String telephone;
    // (填写)附近测试桩pic_pipe_identification.ID_
    private String nagmInput;
    // (填写)附近测试桩距离（相对值）
    private BigDecimal nagmMileageInput;
    // 位置X
    private BigDecimal positionX;
    // 位置Y
    private BigDecimal positionY;
    // 位置Z
    private BigDecimal positionZ;
    // 位置描述
    private String locationDescription;
    // 最小间距（m）
    private BigDecimal minDistance;
    // 管道埋深（m）
    private BigDecimal coverDepth;
    // 发现日期
    private Date foundDate;
    // 发现方式（巡线、第三方上报）
    private String foundWay;

    public String getPipeLineId() {
        return pipeLineId;
    }

    public void setPipeLineId(String pipeLineId) {
        this.pipeLineId = pipeLineId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getNagmInput() {
        return nagmInput;
    }

    public void setNagmInput(String nagmInput) {
        this.nagmInput = nagmInput;
    }

    public BigDecimal getNagmMileageInput() {
        return nagmMileageInput;
    }

    public void setNagmMileageInput(BigDecimal nagmMileageInput) {
        this.nagmMileageInput = nagmMileageInput;
    }

    public BigDecimal getPositionX() {
        return positionX;
    }

    public void setPositionX(BigDecimal positionX) {
        this.positionX = positionX;
    }

    public BigDecimal getPositionY() {
        return positionY;
    }

    public void setPositionY(BigDecimal positionY) {
        this.positionY = positionY;
    }

    public BigDecimal getPositionZ() {
        return positionZ;
    }

    public void setPositionZ(BigDecimal positionZ) {
        this.positionZ = positionZ;
    }

    public String getLocationDescription() {
        return locationDescription;
    }

    public void setLocationDescription(String locationDescription) {
        this.locationDescription = locationDescription;
    }

    public BigDecimal getMinDistance() {
        return minDistance;
    }

    public void setMinDistance(BigDecimal minDistance) {
        this.minDistance = minDistance;
    }

    public BigDecimal getCoverDepth() {
        return coverDepth;
    }

    public void setCoverDepth(BigDecimal coverDepth) {
        this.coverDepth = coverDepth;
    }

    public Date getFoundDate() {
        return foundDate;
    }

    public void setFoundDate(Date foundDate) {
        this.foundDate = foundDate;
    }

    public String getFoundWay() {
        return foundWay;
    }

    public void setFoundWay(String foundWay) {
        this.foundWay = foundWay;
    }

    @Override
    public void fromDomain(PressObject domain) {

        // 管道编号
        this.pipeLineId = domain.getPipeLineId();
        // 名称
        this.name = domain.getName();
        // 类型AE_PRESS_OBJECT_TYPE（树木、围墙、民房、厂房、大棚、牲口圈、其他）
        this.type = domain.getType();
        // 联系人
        this.contact = domain.getContact();
        // 联系方式
        this.telephone = domain.getTelephone();
        // (填写)附近测试桩pic_pipe_identification.ID_
        this.nagmInput = StringUtils.isNotNullEmpty(domain.getNagmNumberInput()) ? domain.getNagmNumberInput() : domain.getNagmNumber();
        // (填写)附近测试桩距离（相对值）
        this.nagmMileageInput = NumberUtil.toMeter(StringUtils.isNotNullEmpty(domain.getNagmNumberInput()) ? domain.getNagmMileageInput() : domain.getNagmMileage());
        // 位置X
        this.positionX = domain.getPositionX();
        // 位置Y
        this.positionY = domain.getPositionY();
        // 位置Z
        this.positionZ = domain.getPositionZ();
        // 位置描述
        this.locationDescription = domain.getLocationDescription();
        // 最小间距（m）
        this.minDistance = domain.getMinDistance();
        // 管道埋深（m）
        this.coverDepth = domain.getCoverDepth();
        // 发现日期
        this.foundDate = domain.getFoundDate();
        // 发现方式（巡线、第三方上报）
        this.foundWay = domain.getFoundWay();

        super.fromDomain(domain.getId(), domain.getRecorder(), domain.getRecordTime(), domain.getRemarks());
    }

    @Override
    public PressObject toDomain() {

        PressObject pressObject = new PressObject();
        // 管道编号
        pressObject.setPipeLineId(this.pipeLineId);
        // 名称
        pressObject.setName(this.name);
        // 类型AE_PRESS_OBJECT_TYPE（树木、围墙、民房、厂房、大棚、牲口圈、其他）
        pressObject.setType(this.type);
        // 联系人
        pressObject.setContact(this.contact);
        // 联系方式
        pressObject.setTelephone(this.telephone);
        // (填写)附近测试桩pic_pipe_identification.ID_
        pressObject.setNagmInput(this.nagmInput);
        // (填写)附近测试桩距离（相对值）
        pressObject.setNagmMileageInput(NumberUtil.toMillimeter(this.nagmMileageInput));
        // 位置X
        pressObject.setPositionX(this.positionX);
        // 位置Y
        pressObject.setPositionY(this.positionY);
        // 位置Z
        pressObject.setPositionZ(this.positionZ);
        // 位置描述
        pressObject.setLocationDescription(this.locationDescription);
        // 最小间距（m）
        pressObject.setMinDistance(this.minDistance);
        // 管道埋深（m）
        pressObject.setCoverDepth(this.getCoverDepth());
        // 发现日期
        pressObject.setFoundDate(this.getFoundDate());
        // 发现方式（巡线、第三方上报）
        pressObject.setFoundWay(this.getFoundWay());

        // id
        pressObject.setId(this.getId());
        // 记录人
        pressObject.setRecorder(this.getRecorder());
        // 记录时间
        Date recordTimeTemp = null;
        try {
            recordTimeTemp = DateUtil.allStr2Date(this.getRecordTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        pressObject.setRecordTime(recordTimeTemp);
        // 备注
        pressObject.setRemarks(this.getRemarks());

        return pressObject;
    }
}